
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
const char map[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int main (void)
{
    int cnt[30],cnt2[30],flag;
    char a[105],b[105];
    while(~scanf("%s%s",a,b))
    {
        flag=0;
        memset(cnt,0,sizeof(cnt));
        memset(cnt2,0,sizeof(cnt2));//sizeof(cnt2)之前打成cnt WA 注意细节 不要复制代码
        for(int i=0; i<strlen(a); i++)
        {
            for(int ii=0; ii<strlen(map); ii++)
            {
                if(map[ii]==a[i])
                {
                    cnt[ii]++;
                }
            }
        }
        for(int i=0; i<strlen(b); i++)
        {
            for(int ii=0; ii<strlen(map); ii++)
            {
                if(map[ii]==b[i])
                {
                    cnt2[ii]++;
                }
            }
        }
        sort(cnt,cnt+26,greater<int>());//greater<int >() 从大到小 int型的排序 如果是less 是从小到大
        sort(cnt2,cnt2+26,greater<int>());
        for(int i=0; i<26; i++)
        {
            if(cnt[i]!=cnt2[i])
            {
                flag=1;
                break;
            }
        }
        if(flag)
            printf("NO\n");
        else
            printf("YES\n");
    }
    return 0;
}

